using ThingsEdge.Exchange.Contracts;

namespace Digitalmes.Application.Scada.Commands;

/// <summary>
/// 设备点检命令。
/// </summary>
public sealed record EquipmentInspectCommand : IRequest<ScadaResult>
{
    /// <summary>
    /// 线体编号
    /// </summary>
    [NotNull]
    public string? LineCode { get; init; }

    /// <summary>
    /// 工位编号
    /// </summary>
    [NotNull]
    public string? WsCode { get; init; }

    /// <summary>
    /// 别名，用于映射具体的设备，没有可以为空。
    /// </summary>
    public string? Alias { get; init; }

    /// <summary>
    /// 标件编号
    /// </summary>
    public string? PartNo { get; init; }

    /// <summary>
    /// 点检结果，null 表示无结果
    /// </summary>
    public PassEnum? PassResult { get; init; }

    /// <summary>
    /// 点检数据集合。
    /// </summary>
    [NotNull]
    public IReadOnlyList<PayloadData>? DataList { get; init; }
}
